<?php
	require("frmCookie.php");
	require("functions.php");
	
	$iOpcion = $_REQUEST['iOpcion'];
	if($iOpcion == '')
	{
		$iOpcion = 1;	
	}
	$imei = $_REQUEST['imei'];
	$nroRemito = $_REQUEST['nroRemito'];
	$observaciones = $_REQUEST['observaciones'];
	$idCliente = $_REQUEST['idCliente'];
	$cantidad = $_REQUEST['cantidad'];
	$backoffice = $_REQUEST['backoffice'];
	$estados = $_REQUEST['estados'];
	$idsEstados = preg_split('/,/', $estados);
	$idOrden = $_REQUEST['idOrden'];
	
	$autogenerar = $_REQUEST['autogenerar'];
	$disableAutogenerar = $_REQUEST['disableAutogenerar'];
	$huboCierres = $_REQUEST['huboCierres'];
	$campo = "nroRemito";
	
	//Valido que no hayan cambiado a mano la URL
	$url = preg_split('/\//', $_SERVER['REQUEST_URI']);
	$url = $url[count($url)-1];
	if($url != "cierre.php?backoffice=BATCH" && $url != "cierre.php?backoffice=BATCH&iOpcion=4" && 
	   $url != "cierre.php?backoffice=BULK" && $url != "cierre.php?backoffice=BULK&iOpcion=4" && $url != "cierre.php")
	{
		header("Location:main.php");
	}
	
	//Traigo los estados a mostrar en el combo. Son los estados en los que puede estar el equipo que se quiere cerrar
	$sql = "select e.idEstado, e.nombre from estados e where e.idEstado in (1, 6, 16, 19, 27, 28) order by e.nombre";
	$estadosDisponibles = readSQL($sql);
	
	if($iOpcion == 2 || $iOpcion == 3)
	{
		//Luego de un Cierre o de un Deshacer, traigo los estados que estaban en la grilla
		$sql = "select e.idEstado, e.nombre from estados e where e.idEstado in (";
		$i=0;
		foreach($idsEstados as $idEstado)
		{
			if($i==0)
			{
				$sql .= $idEstado;
			}
			else
			{
				$sql .= ", ".$idEstado;
			}
			$i++;
		}
		$sql .= ") order by e.nombre";
		$estadosxCierre = readSQL($sql);	
	}
	
	if ($iOpcion == 2)
	{
		//Se hace el cierre
		//Si no hubo ingresos
		if(!$huboCierres && $nroRemito != '')
		{
			$sql = "select o.idOrden from ordenes o where o.nroRemitoReceptor = '$nroRemito' limit 1";
			$ordenes = readSQL($sql);
		}
		
		//Si no hubo cierres y el nroRemito ingresado ya existe
		if(!$huboCierres && (count($ordenes)>0))
		{
			$mensaje = "El Número de Remito ingresado ya existe.";
			$clase = "error";
			$campo = "nroRemito";
		}
		else
		{
			$campo = "imei";
			$sql = "select o.idorden, o.idcliente, c.nombre as cliente, e.idestado, e.codigo, e.nombrecompleto as estado from ordenes o join clientes c on o.idcliente = c.idcliente join estados e on o.idestado = e.idestado where o.idalmacen = (select a.idalmacen from almacenes a where a.idsucursal = ".$_SESSION['idSucursal']." and a.nombre = 'Backoffice $backoffice') and o.idestado in (1, 6, 16, 19, 27, 28) and o.imei = '$imei' order by o.idorden desc limit 1;";
			
			//echo $sql;
			
			$ordenes = readSQL($sql);
			if(count($ordenes)>0)
			{
				//Si hay alguna orden con el imei ingresado, dentro Labotarorio de la sucursal del usuario y que este en los estados 1, 6, 16, 19, 27, ó 28
				foreach($ordenes as $orden)
				{
					if($idCliente != '' && $idCliente != $orden['idcliente'])
					{
						$mensaje = "El IMEI: $imei no pertenece al cliente: $cliente. Este IMEI no fue cerrado.";
						$clase = "error";
					}
					else if(recursiveArraySearch($estadosxCierre, $orden['idestado']) == -1)
					{
						$estado = $orden['estado'];
						$mensaje = "El IMEI: $imei se encuentra en Estado: $estado, que no está incluido en a selección. Este IMEI no fue cerrado.";
						$clase = "error";
					}
					else
					{
						$idCliente = $orden['idcliente'];
						$cliente = $orden['cliente'];
						$idOrden = $orden['idorden'];
						$codigo = $orden['codigo'];
						
						//Autogenero el numero de remito
						if($autogenerar == "on")
						{
							$rand = rand(0,99999999);
							$sql = "select o.idOrden from ordenes o where nroRemitoReceptor = '$rand' limit 1";
							$ordenes = readSQL($sql);
							while(count($ordenes)>0)
							{
								$rand = rand(0,99999999);
								$ordenes = readSQL($sql);
							}
							
							$nroRemito = $rand;
						}
						
						$sql = "update ordenes set nroremitoreceptor = '$nroRemito', idestado = (select idestado from estados where codigo = '$codigo' and terminado=1 and entregado=0 and aceptado=0 and facturado=0 and procesado=0), idalmacen = (select idalmacen from almacenes where nombre = 'Equipos Terminados $backoffice' and idsucursal = ".$_SESSION['idSucursal'].") where idorden = $idOrden;";
						$sql .= "update ordenes set observacionesremitoreceptor = '$observaciones' where nroremitoreceptor = '$nroRemito'";
						
						if(transactionSQL($sql, true))
						{
							$disableAutogenerar = "disabled";
							$huboCierres = 1;	
							$mensaje = "El IMEI: $imei se ha cerrado correctamente bajo el Remito de Egreso: $nroRemito.";
							$clase = "ok";
						}
						else
						{
							$mensaje = "El IMEI: $imei no se pudo cerrar.";
							$clase = "error";
						}
					}
				}
			}
			else
			{
				$mensaje = "El IMEI: $imei no se puede cerrar. O bien el mismo no existe, o no se encuentra en el Backoffice $backoffice, o no es apto para cerrarse.";
				$clase = "error";
			}
		}
	}
	else if($iOpcion == 3)
	{
		//Traigo el codigo del estado de la orden a deshacer el cierre
		$sql = "select o.imei, e.codigo from estados e join ordenes o on e.idEstado = o.idEstado where o.idOrden = $idOrden";
		$ordenes = readSQL($sql);
		foreach($ordenes as $orden)
		{
			$imei = $orden['imei'];	
			$codigo = $orden['codigo'];	
		}
		//Deshago el cierre de la orden seteando las observacionesremitoreceptor y nroremitoreceptor en vacio, poniendo el estado en el que estaba antes y la mando al Backoffice
		$sql = "update ordenes o set o.observacionesremitoreceptor = '', o.nroremitoreceptor = '', o.idestado = if(o.idestado = 23, 27, (select idestado from estados e where e.codigo = '$codigo' and terminado=0 and entregado=0 and aceptado=0 and facturado=0 and procesado=0)), idalmacen = (select idalmacen from almacenes where nombre = 'Backoffice $backoffice' and idsucursal = ".$_SESSION['idSucursal'].") where idorden = $idOrden;";
		//echo $sql;
				
		if(transactionSQL($sql, true))
		{
			$mensaje = "Se deshizo el cierre del IMEI: $imei.";
			$clase = "ok";
		}
		else
		{
			$mensaje = "No se pudo deshacer el cierre del IMEI: $imei.";
			$clase = "error";
		}
		
		$campo = "imei";
	}
	
	//Si se edita un cierre o si hubo cierres
	if($iOpcion==5 || $huboCierres)
	{
		$sql = "select o.idOrden, o.imei, o.codigoReferencia, o.observacionesRemitoReceptor from ordenes o where o.nroRemitoReceptor = $nroRemito";
		$ordenesCerradas = readSQL($sql);
		foreach($ordenesCerradas as $ordenCerrada)
		{
			$observaciones = $ordenCerrada['observacionesRemitoReceptor'];
			break;
		}
		if($iOpcion==5)
		{
			$huboCierres = 1;	
		}
	}
?>
<html>
	<head>
    	<?php
		require("frmHeader.php");
		?>
        <script src="scripts/validar.js" language="javascript"></script>
        <script language="javascript">
		
		function validar()
		{
			if(frm.autogenerar != null && !frm.autogenerar.checked)
			{
				if(frm.nroRemito != null && frm.nroRemito.value == '')
				{
					alert("Por favor ingrese el Numero de Remito.");
					frm.nroRemito.focus();
					return false;
				}
				if(frm.nroRemito != null && !validarEnteroPositivo(frm.nroRemito.value))
				{
					alert("El Numero de Remito debe contener sólo números.");
					frm.nroRemito.focus();
					return false;
				}
			}
			if(frm.grdEstados.length == 0)
			{
				alert("Por favor agregue al menos un Estado.");
				frm.estado.focus();
				return false;
			}
			if(frm.imei != null && frm.imei.value == '')
			{
				alert("Por favor ingrese el IMEI.");
				frm.imei.focus();
				return false;
			}
			/*
			if(frm.imei != null && !validarImei(frm.imei.value))
			{
				alert("El IMEI debe estar formado por 15 digitos.");
				frm.imei.focus();
				return false;
			}
			*/
			guardarDatosGrilla(frm.grdEstados, frm.estados);
			
			return true;
		}
		
		function guardarDatosGrilla(grilla, variable)
		{
			if(grilla != null && grilla.style.display != 'none')
			{
				for(i=0; i<grilla.length; i++)
				{
					if(i==0)
					{
						variable.value = grilla.options[i].value;
					}
					else
					{
						variable.value += "," + grilla.options[i].value;
					}
				}
			}	
		}
		
		function deshacerCierre(idOrden)
		{
			guardarDatosGrilla(frm.grdEstados, frm.estados);
			
			frm.iOpcion.value = 3;
			frm.idOrden.value=idOrden;
			document.frm.submit();
		}
		
		function pasarDeOrigenADestino(origen, destino)
		{
			//alert(origen.selectedIndex);
			if(origen.selectedIndex >= 0 && origen.options[origen.selectedIndex].text != '')
			{
				//Si hay algo seleccionado en el origen, pasa lo seleccionado al destino
				var selectedIndex = origen.selectedIndex;
				destino.options[destino.length] = new Option(origen.options[selectedIndex].text, origen.options[selectedIndex].value);
				origen.options[selectedIndex] = null;
				
				//Deja seleccionado el siguiente elemento al que eliminó
				if(origen.options.length > selectedIndex)
				{
				   origen.selectedIndex = selectedIndex;
				}
				else
				{
					origen.selectedIndex = origen.options.length-1;
				}
				
				sortOptions(destino);
			}
		}
		
		function compareOptionText(a,b) 
		{
			return a.text!=b.text ? a.text<b.text ? -1 : 1 : 0;
		}
		
		function sortOptions(list) 
		{
			var items = list.options.length;
			var tmpArray = new Array(items);
			for ( i=0; i<items; i++ )
			tmpArray[i] = new
			Option(list.options[i].text,list.options[i].value);
			tmpArray.sort(compareOptionText);
			for ( i=0; i<items; i++ )
				list.options[i] = new Option(tmpArray[i].text,tmpArray[i].value);
		}
		</script>
	</head>
	<body onLoad="<?php echo 'frm.'.$campo.'.focus()';?>">
    	<table cellpadding="0" cellspacing="0" align="center" class="tablaPrincipal">
        	<tr>
            	<td align="center">
                	<?php
					require("frmSession.php"); 
					
					//Redirecciona a SINPERMISOS.PHP en caso de no tener permisos
					switch ($iOpcion)
					{
						case 1:
						case 2:
						case 3:
						{
							
							if (!(in_array(41000, $_SESSION[permisos])))
							{
							?>
							  <script language="JavaScript" type="text/javascript">
							  window.location.href = "sinPermisos.php"
							  </script>
							<?php
							}
							$titulo = "Cierre de Ordenes - $backoffice";
							break;
						}
					}
					?>
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<?php
					require("frmTitulo.php");
					?>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="menuPrincipal">
                    	<tr>
                        	<td>
								<?php
                                require("frmMenu.php");
                                ?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="tituloPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $titulo; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr style="display:<?php if($mensaje == ''){echo 'none';}else{echo '';}?>;">
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="estadoPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="<?php echo $clase;?>" align="left"><?php echo $mensaje; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr style="display:<?php if($mensaje == ''){echo 'none';}else{echo '';}?>;">
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="contenedorPrincipal">
                    <form name="frm" method="post" onSubmit="return validar();" action="cierre.php">
                    	<tr>
                        	<td width="350" valign="top">
                        		<table>
                                	<tr>
                                    	<td width="20%">
                                        	*Nro. Remito de Egreso:
                                        </td>
                                        <td>
                                        	<input <?php if($huboCierres){echo "readonly";} ?> style="width:66%;" type="text" name="nroRemito" size="30" maxlength="20" value="<?php echo $nroRemito;?>" onBlur="frm.observaciones.focus();">
                                            
                                            <input style="display:<?php if($iOpcion >= 4){echo "none";} ?>;" type="checkbox" name="autogenerar" <?php echo $disableAutogenerar; if($clase=="error" && $autogenerar == "on"){echo "checked";}?> onClick="frm.nroRemito.disabled = this.checked; if(this.checked){frm.nroRemito.value='';}"><label style="display:<?php if($iOpcion >= 4){echo "none";} ?>;">Autogenerar</label>
                                            
                                        </td>
                                    </tr>
                                    <?php
									switch($iOpcion)
									{
										case 1:
										case 2:
										case 3:
										case 5:
										{
											?>
                                                <tr>
                                                    <td colspan="2">
                                                        Observaciones:
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td colspan="2">
                                                        <textarea <?php if($huboCierres){echo "readonly";} ?> style="width:100%;" name="observaciones" rows="4"><?php echo $observaciones;?></textarea>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        *Estados:
                                                    </td>
                                                    <td align="right">
                                                        <select name="estado" style="width:100%;">
                                                        <?php
                                                        foreach($estadosDisponibles as $estadoDisponible)
                                                        {
                                                            echo "<option value='".$estadoDisponible['idEstado']."'>".$estadoDisponible['nombre']."</option>";
                                                        }
                                                        ?>
                                                        </select>
                                                    </td>
                                                    <td>
                                                        <img src="images/mas.png" title="Agregar" class="imagen" onClick="pasarDeOrigenADestino(frm.estado,frm.grdEstados);" onMouseOver="this.className='flyOver';" onMouseOut="this.className='flyOut';">
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td colspan="2">
                                                        <select name="grdEstados" size="5" style="width:100%;">
                                                        <?php
                                                            foreach($estadosxCierre as $estadoxCierre)
                                                            {
                                                                echo "<option value='".$estadoxCierre['idEstado']."'>".$estadoxCierre['nombre']."</option>";
                                                            }
                                                        ?>
                                                        <script language="javascript">
                                                        //Saca del combo lo que está en la grilla
                                                        var i=0;
                                                        var j=0;
                                                        for(i=0; i<frm.grdEstados.options.length; i++)
                                                        {
                                                            for(j=0; j<frm.estado.options.length;j++)
                                                            {
                                                                if(frm.grdEstados.options[i].value == frm.estado.options[j].value)
                                                                {
                                                                    frm.estado.options[j] = null;	
                                                                }
                                                            }
                                                        }
                                                        </script>
                                                        </select>
                                                    </td>
                                                    <td valign="top">
                                                        <img src="images/menos.png" title="Quitar" class="imagen" onClick="pasarDeOrigenADestino(frm.grdEstados, frm.estado);" onMouseOver="this.className='flyOver';" onMouseOut="this.className='flyOut';">
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        *IMEI:
                                                    </td>
                                                    <td>
                                                        <input style="width:69%;" type="text" name="imei" size="30" maxlength="15" value="<?php if($clase == "error"){echo $imei;}?>">
                                                        <input type="button" name="nuevoLote" value="Nuevo Lote" onClick="window.top.location = 'cierre.php?backoffice=<?php echo $backoffice;?>';"/>
            
                                                    </td>
                                                </tr>
                                                <?php
											break;
										}
									}
									?>
                                        <tr>
                                            <td colspan="2" align="center">
                                                <input type="submit" name="guardar" value="<?php echo($iOpcion==4)?"Siguiente":"Guardar";?>"/>
                                                <input type="button" name="cerrar" value="Cerrar" onClick="window.top.location = 'main.php';"/>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                                <td valign="top" align="left" style="padding-left:20px;">
                                    <table width="100%" height="50">
                                        <tr>
                                            <?php
                                            if($nroRemito != '')
                                            {
                                                if(count($ordenesCerradas) != 0)
                                                {
                                                    echo "Cantidad de Equipos Cerrados: ".count($ordenesCerradas);
                                                }
                                                ?>
                                                </tr>
                                                <tr>
                                                <?php
                                                $i=0;
                                                foreach($ordenesCerradas as $ordenCerrada)
                                                {
                                                    $idOrden = $ordenCerrada['idOrden'];
                                                    if($i%18==0)
                                                    {
                                                        echo "<td widht='100%' style='padding-right:10px;' valign='top'>";
                                                    }
                                                    echo "<span onClick='deshacerCierre($idOrden);' onMouseOver=\"this.className='flyOver';\" onMouseOut=\"this.className='flyOut';\" title='Deshacer Cierre'><img class='imagen' src='images/eliminar.png' title=''>".$ordenCerrada['imei']." - ".$ordenCerrada['codigoReferencia']."</span><br/>";
                                                    $i++;
                                                    if($i%18==0)
                                                    {
                                                        echo "</td>";
                                                    }
                                                }
                                            }
                                        ?>
                                        </tr>
                                </table>
                            </td>
                        </tr>
                        <?php
						switch($iOpcion)
						{
							case 1:
							case 2:
							case 3:
							case 5:
							{
								$iOpcion=2;
								break;
							}
							case 4:
							{
								$iOpcion=5;
								break;
							}
						}
						?>
                        <input type="hidden" name="iOpcion" value="<?php echo $iOpcion;?>"/>
                        <input type="hidden" name="idOrden" value="<?php echo $idOrden;?>"/>
                        <input type="hidden" name="idCliente" value="<?php echo $idCliente;?>"/>
                        <input type="hidden" name="backoffice" value="<?php echo $backoffice;?>"/>
                        <input type="hidden" name="estados" value="<?php echo $estados;?>"/>
                        <input type="hidden" name="huboCierres" value="<?php echo $huboCierres;?>"/>
                        <input type="hidden" name="disableAutogenerar" value="<?php echo $disableAutogenerar;?>"/>
                        </form>
                    </table>
                </td>
            </tr>
        </table>
	</body>
</html>